﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using LapvComponent;
using log4net;
using LapvBussiness;
using LapvWebComponent;

namespace Lapv.page
{
    public partial class Surveyadd : System.Web.UI.Page
    { 
        public string domain =ConfigLapv.Instance.DomainAdmin;
        private static readonly ILog log = LogManager.GetLogger(typeof(Surveyadd).Name);
        int id = -1;
        protected void Page_Load(object sender, EventArgs e)
        {
            
            string urlReturn = this.Request.RawUrl.ToString();
            ProviderAdmin.CheckAuthen(urlReturn,12);
            if (Page.IsPostBack) return;
           
            if (Request.Params["id"] != null)
                int.TryParse(Request.Params["id"].ToString(), out id);

            if (id > 0) { bindData(id); }
            
            
        }

        private void bindData(int id)
        {
            using (lapvwebEntities db = new lapvwebEntities())
            {
                survey sv = db.surveys.Where(en => en.id == id).FirstOrDefault();
                txtQuestion.Text = sv.question;
                txtAnswer1.Text = sv.answer1;
                txtAnswer2.Text = sv.answer2;
                txtAnswer3.Text = sv.answer3;
            }
        }
        protected void btnLuu_Click(object sender, EventArgs e)
        {
     
            string msg = "";
            string actiontype = "";
            try
            {
                survey sv = null;
                if (id > 0)
                {
                    actiontype = "SURVEY_EDIT";
                    using (lapvwebEntities db = new lapvwebEntities())
                    {
                        sv = db.surveys.Where(en => en.id == id).FirstOrDefault();
                        if (sv != null)
                        {
                            sv.question = txtQuestion.Text.Trim();
                            sv.answer1 = txtAnswer1.Text.Trim();
                            sv.answer2 = txtAnswer2.Text.Trim();
                            sv.answer3 = txtAnswer3.Text.Trim();
                            db.ApplyCurrentValues(sv.EntityKey.EntitySetName, sv);
                            db.SaveChanges();
                            Response.Redirect(domain + "Pages/surveymanager.aspx");
                        }
                        else
                        {
                            ((Lapv)this.Master).MessageError = "Không tồn tại đối tượng này.";
                            return;
                        }
                    }
                }
                else
                {
                    actiontype = "SURVEY_ADD";
                    sv = new survey();
                    sv.question = txtQuestion.Text.Trim();
                    sv.answer1 = txtAnswer1.Text.Trim();
                    sv.answer2 = txtAnswer2.Text.Trim();
                    sv.answer3 = txtAnswer3.Text.Trim();
                    using (lapvwebEntities db = new lapvwebEntities())
                    {
                        db.AddTosurveys(sv);
                        db.SaveChanges();
                    }
                   
                }
                Response.Redirect(domain + "Pages/surveymanager.aspx");
            }
            catch (Exception ex)
            {
                if (id > 0)
                    msg = "Cập nhật không thành công đối tượng thăm dò ý kiến có mã " + id + ". Do " + ex.Message;
                else msg = "Thêm không thành công đối tượng thăm dò ý kiến. Do " + ex.Message;
                log.Error(ex.Message, ex);
                ((Lapv)this.Master).MessageError = "Quá trình cập nhật dữ liệu bị lỗi. " + ex.Message;
            }

            try
            {
                int uid = 0;
                string uname = string.Empty;
                uid = ProviderAdmin.GetUsserId();
                if (Session["UserName"] != null)
                    uname = Session["UserName"].ToString();
                ProviderAdmin.AddLog(uid, uname, msg, string.Empty, actiontype);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }
        }
    }
}
